package cn.csg.ams.collect2.poptopics.service;

import cn.csg.ams.collect2.poptopics.entity.LoadData;
import cn.csg.ams.collect2.poptopics.entity.RecordInfo;
import com.aliyun.datahub.client.model.TupleRecordData;

import java.util.Map;

/**
 * @author: zhanggang
 * @ClassName: MkMcTermAlarmLogService
 * @date: 2023-11-15 16:31:51
 * @Description: 停复电告警数据消费日志(mk_mc_term_alarm_log)表服务接口
 */
public interface MkMcTermAlarmLogService {

    /**
     * 记录清洗前的日志
     *
     * @param data 原始停复电告警数据
     */
    void saveMkMcTermAlarmLogPre(TupleRecordData data);


    /**
     * @Title:saveMkMcTermAlarmLog
     * @Description:新增数据
     * @date: 2023-11-15 16:31:51
     * @params: mkMcTermAlarmLogVo 实例对象
     * @return：int 影响行数
     * @throw：
     */
    void saveMkMcTermAlarmLog(TupleRecordData data, long startTime, long systemTime);


    /**
     * 根据运行电能表标识查询档案信息 (将结果缓存到redis中)
     *
     * @param runMeterId 运行电能表标识
     * @return RecordInfo
     */
    RecordInfo getRecordInfo(String runMeterId, String areaCode);

    /**
     * 根据运行电能表标识查询档案信息 (将结果缓存到redis中)
     *
     * @param runTermId 运行电能表标识
     * @return RecordInfo
     */
    RecordInfo getRecordInfoByTerm(String runTermId, String areaCode);


    /**
     * 召测 （通过电能表标识，获取负载数据）
     *
     * @param runMeterId 运行电能表标识
     * @return LoadData
     */
    LoadData getLoadDataByRunMeterId(String runMeterId);


    /**
     * 查询公变台区下的配置终端标识与电表标识
     *
     * @param taNo 台区编号
     * @return Map<String, String>
     */
    Map<String, String> getPbTermAndMeterByTaNo(String taNo, String taType);


}
